home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 40
/
Aminet 40 (2000)(Schatztruhe)[!][Dec 2000].iso
/
Aminet
/
mus
/
play
/
DeliDecrunch.lha
/
src
/
DeliPlayer.h
< prev
next >
Wrap
C/C++ Source or Header
|
2000-09-19
|
4KB
|
175 lines
/* DeliDecruncher (C) 2000 Stuart Caie <kyzer@4u.net>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#ifndef MISC_DELIPLAYER_H
#define MISC_DELIPLAYER_H 1
#ifndef EXEC_PORTS_H
#include <exec/ports.h>
#endif
#ifndef EXEC_TYPES_H
#include <exec/types.h>
#endif
#ifndef UTILITY_TAGITEM_H
#include <utility/tagitem.h>
#endif
#define DELIVERSION (17) /* Current Version of DeliTracker */
#define DELIREVISION (4) /* Current Revision of DeliTracker */
struct DeliTrackerPlayer {
ULONG dtp_RTS_code;
ULONG dtp_head_DELI;
ULONG dtp_head_RIUM;
struct TagItem *dtp_TagArray;
};
enum {
DTP_InternalPlayer=0x80004454,
DTP_CustomPlayer,
DTP_RequestDTVersion,
DTP_RequestKickVersion,
DTP_PlayerVersion,
DTP_PlayerName,
DTP_Creator,
DTP_Check1,
DTP_Check2,
DTP_ExtLoad,
DTP_Interrupt,
DTP_Stop,
DTP_Config,
DTP_UserConfig,
DTP_SubSongRange,
DTP_InitPlayer,
DTP_EndPlayer,
DTP_InitSound,
DTP_EndSound,
DTP_StartInt,
DTP_StopInt,
DTP_Volume,
DTP_Balance,
DTP_Faster,
DTP_Slower,
DTP_NextPatt,
DTP_PrevPatt,
DTP_NextSong,
DTP_PrevSong,
DTP_SubSongTest,
DTP_NewSubSongRange,
DTP_DeliBase,
DTP_Flags,
DTP_CheckLen,
DTP_Description,
DTP_Decrunch,
DTP_Convert,
DTP_NotePlayer,
DTP_NoteStruct,
DTP_NoteInfo,
DTP_NoteSignal,
DTP_Process,
DTP_Priority,
DTP_StackSize,
DTP_MsgPort,
DTP_Appear,
DTP_Disappear,
DTP_ModuleName,
DTP_FormatName,
DTP_AuthorName,
DTP_InitNote,
DTP_NoteAllocMem,
DTP_NoteFreeMem,
DTP_PlayerInfo,
DTP_Patterns,
DTP_Duration,
DTP_SampleData,
DTP_MiscText
};
#define PLYB_CUSTOM (0)
#define PLYF_CUSTOM (1<<0)
#define PLYB_SONGEND (1)
#define PLYF_SONGEND (1<<1)
#define PLYB_ANYMEM (2)
#define PLYF_ANYMEM (1<<2)
struct DeliMessage {
struct Message msg;
ULONG DTMN_Function;
ULONG DTMN_Result;
};
struct DeliTrackerGlobals {
APTR dtg_AslBase;
APTR dtg_DOSBase;
APTR dtg_IntuitionBase;
APTR dtg_GfxBase;
APTR dtg_GadToolsBase;
APTR dtg_ReservedLibraryBase;
STRPTR dtg_DirArrayPtr;
STRPTR dtg_FileArrayPtr;
STRPTR dtg_PathArrayPtr;
APTR dtg_ChkData;
ULONG dtg_ChkSize;
UWORD dtg_SndNum;
UWORD dtg_SndVol;
UWORD dtg_SndLBal;
UWORD dtg_SndRBal;
UWORD dtg_LED;
UWORD dtg_Timer;
APTR (*dtg_GetListData)(UWORD); /* use DeliGetListData() ! */
APTR (*dtg_LoadFile)();
STRPTR (*dtg_CopyDir)();
STRPTR (*dtg_CopyFile)();
STRPTR (*dtg_CopyString)(STRPTR); /* use DeliCopyString() ! */
void (*dtg_AudioAlloc)();
void (*dtg_AudioFree)();
void (*dtg_StartInt)();
void (*dtg_StopInt)();
void (*dtg_SongEnd)();
void (*dtg_CutSuffix)();
void (*dtg_SetTimer)();
void (*dtg_WaitAudioDMA)();
void (*dtg_LockScreen)();
void (*dtg_UnlockScreen)();
void (*dtg_NotePlayer)();
APTR (*dtg_AllocListData)(ULONG, ULONG); /* use DeliAllocListData() ! */
void (*dtg_FreeListData)(APTR); /* use DeliFreeListData() ! */
};
#define DELIBASE __reg("a5") struct DeliTrackerGlobals *DeliBase
extern APTR DeliGetListData(__reg("d0") UWORD num, DELIBASE);
extern STRPTR DeliCopyString(__reg("a0") STRPTR string, DELIBASE);
extern APTR DeliAllocListData(__reg("d0") ULONG bytesize, __reg("d1") ULONG flags, DELIBASE);
extern void DeliFreeListData(__reg("a1") APTR memblock, DELIBASE);
#define GetListData(x) (DeliGetListData((x),DeliBase))
#define CopyString(x) (DeliCopyString((x),DeliBase))
#define AllocListData(x,y) (DeliAllocListData((x),(y),DeliBase))
#define FreeListData(x) (DeliFreeListData((x),DeliBase))
#endif